<?php

//vi definierar konstanter så att strängar bara behöver skrivas en gång
   //define("NAME","name");define("PASSWORD","password");define("SUBMIT","submit");
   //define("USERNAME","username");define("DOLOGOUT","DoLogout");define("REMEMBERME","rememberMe");
   

//Innehåller funktionalitet för att skapa HTML och hämta indata från användaren 
class LoginView {
  
  //vi definierar konstanter så att strängar bara behöver skrivas en gång
  private static $name = "name", $password = "password", $submit = "submit";   //används self::$name
  private static $username = "username", $dologout = "DoLogout", $rememberme = "rememberMe";
  private static $oneyear = 31536000;   //(60*60*24*365)
  
  //genererar HTML för ett inloggningsformulär
  public function DoLoginBox() {// byt name strängarna mot statiska variabler self::$name
    return 
    "
 		<div id='errorMessage'><p>wrong password or username</p></div>
 		<form action='' method='get'>
			<fieldset>
			  Name: <input type='text' name='name'  /><br />
			  Password: <input type='password' name='password' /><br />
			  <input type='submit' name='submit' value='Logga in' />
			  Remember me: <input type='checkbox' name='rememberMe' value='remember me'/>
			</fieldset>
		</form>
    	<div id='statusMessage'><p>not logged in</p></div>
    ";
  }
  //returnernar HTML för en knapp ( "Logga ut" )
  public function DoLogoutBox() {
    return 
    "<div>
     <form action='' method='get'><input type='submit' name='DoLogout' value='Logga ut'/></form>
     </div>";
  }
  
  //returnerar en sträng med det som användaren skrivit i
  //användarnamnsfältet eller NULL ifall användaren inte fyllt i något där.
  public function GetUserName() {
  	return $_GET[self::$name];;
  }
  
  //returnerar en sträng med det som användaren skrivit i
  //lösenordsfältet eller NULL ifall användaren inte fyllt i något där.
  public function GetPassword() {
  	return $_GET[self::$password];	
  }
  
  //returnerar true om användaren har klickat på Login-knappen eller
  //false ifall han inte gjort det.
  public function TriedToLogIn(){
  	if (isset($_GET[self::$submit]) && isset($_GET[self::$name]) && isset($_GET[self::$password])) {
			return true;	
		}	
		return false;			 	
  }
  //returnerar true om användaren har klickat på Logut-knappen eller
  //false ifall han inte gjort det.
  public function TriedToLogOut(){
  	if (isset($_GET[self::$dologout])) {
			return true;	
		}	
		return false;			 	
  }
  //Returnerar true om checkbox remember me är ikryssad
	public function Checkbox() {		
		if (isset($_GET[self::$rememberme])) {
			return true;	
		}	
		return false;		
	}
	
	//Returnerar true om användaren redan har en inloggnings cookie
	public function CheckCookie() {
		if (isset($_COOKIE[self::$username]) && isset($_COOKIE[self::$password])) {
	  		return true;
		}
		return false;
	}
	//vi sätter cookiens utgångsdatum till om ett år // detta skall vara en funktion i vyn
	// vi skall också ta bort kakan när vi loggar bort
	public function doCookie() {
			$expire = time()+ self::$oneyear; //60*60*24*365; //döp detta till en variabel 
			setcookie("username", $this->GetUserName(), $expire);
	        setcookie("password", $this->GetPassword(), $expire);
	}
	// ta bort cookie genom att sätta expire till historisk tid
	public function undoCookie() {
			$expire = time()- self::$oneyear; //60*60*24*365; //döp detta till en variabel 
			setcookie("username", $this->GetUserName(), $expire);
	        setcookie("password", $this->GetPassword(), $expire);
	}
	
}

